
#include <cassert>
#include <iostream>
#include <vector>

using namespace std;
enum class TgDataType { INT = 0, TGSIZE_T = 1, REAL_T = 2 };
enum Tag : short { In = -1, Bound = 0, Out = 1 };
void cast(TgDataType t) { cout << static_cast<int>(t) << endl; }

int main() {

  cast(TgDataType::TGSIZE_T);
  cast(TgDataType::INT);
  cast(TgDataType::REAL_T);
  vector<Tag> vec(2);
  vec[0] = In;
  vec[1] = Bound;
  // cout << vec[0] << vec[1] << endl;
  TgDataType dtype;
  switch (dtype) {
  case TgDataType::INT:
    /* code */
    break;
  case TgDataType::TGSIZE_T:
    /* code */
    break;
  }
  return 0;
}